package modulos.pessoa.entidade;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@SuppressWarnings("serial")
@Entity
@Table(name="TBLPES")
public class Pessoa implements Serializable{
	
	@Id 
	@GeneratedValue  
	@Column(name="CODPES", nullable=false)
	private Long id;

	@Column(name="NOME", nullable=false)
	private String nomeCompleto;
	
	@Enumerated(EnumType.STRING) 
	@Column(name="SEXO", nullable=false)
	private Sexo sexo;
	
	@Temporal(TemporalType.DATE)
	@Column(name="DATNAS")
	private Date dataNascimento;
	
	@Column(name="CPFCNJP")
	private String cpfCnpj;
	
	@Enumerated(EnumType.STRING) 
	@Column(name="NATUR")
	private Cidade naturalidade;

	@OneToMany(mappedBy="pessoa", cascade=CascadeType.ALL)
	private List<Contato> dadosContato;
	
	@OneToMany(mappedBy="pessoa", cascade=CascadeType.ALL)
	private List<Endereco> dadosEndereco;
	
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getNomeCompleto() {
		return nomeCompleto;
	}
	public void setNomeCompleto(String nomeCompleto) {
		this.nomeCompleto = nomeCompleto;
	}
	public List<Contato> getDadosContato() {
		return dadosContato;
	}
	public void setDadosContato(List<Contato> dadosContato) {
		this.dadosContato = dadosContato;
	}
	public Sexo getSexo() {
		return sexo;
	}
	public void setSexo(Sexo sexo) {
		this.sexo = sexo;
	}
	public Date getDataNascimento() {
		return dataNascimento;
	}
	public void setDataNascimento(Date dataNascimento) {
		this.dataNascimento = dataNascimento;
	}
	public List<Endereco> getDadosEndereco() {
		return dadosEndereco;
	}
	public void setDadosEndereco(List<Endereco> dadosEndereco) {
		this.dadosEndereco = dadosEndereco;
	}
	public String getCpfCnpj() {
		return cpfCnpj;
	}
	public void setCpfCnpj(String cpfCnpj) {
		this.cpfCnpj = cpfCnpj;
	}
	public Cidade getNaturalidade() {
		return naturalidade;
	}
	public void setNaturalidade(Cidade naturalidade) {
		this.naturalidade = naturalidade;
	}
}
